package com.zb.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zb.entity.SelectVo;
import com.zb.entity.ZjWorkModuleWay;
import com.zb.vo.WorkModuleWayVo;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 工单处理方式表 服务类
 * </p>
 *
 * @author WEN
 * @since 2023-09-16
 */
public interface ZjWorkModuleWayService extends IService<ZjWorkModuleWay> {

    /**
     * 新增或修改工单处理方式
     * @param custAccId 商家ID
     * @param moduleId 模块ID
     * @param workModuleWayVo
     */
    void save(Long custAccId, Long moduleId, WorkModuleWayVo workModuleWayVo);

    /**
     * 获取处理方式列表
     * @param moduleId 模块ID
     * @param selectVo 搜索条件
     * @return
     */
    Map<String, Object> getList(Long moduleId, SelectVo selectVo);

    /**
     * 根据ID批量启用或禁用模块处理方式
     * @param ids 处理方式ID集合
     * @param status 处理方式状态：false-启用，true-禁用
     * @return
     */
    void updateDisabledBatchById(List<Long> ids, boolean status);

    /**
     * 根据ID批量删除模块处理方式
     * @param ids
     */
    void deleteBatchById(List<Long> ids);

    /**
     * 工单模块处理方式下拉列表查询
     * @param moduleId 工单模块ID
     * @param selectVo 搜索条件
     * @return
     */
    Map<String, Object> workModuleWayPageSelect(Long moduleId, SelectVo selectVo);

    /**
     * 根据模块处理方式ID获取方式名称
     * @param oneWayId 一级方式ID
     * @param twoWayId 二级方式ID
     * @param threeWayId 三级方式ID
     * @return
     */
    String getNameByIds(Long oneWayId, Long twoWayId, Long threeWayId);
}
